home *** CD-ROM | disk | FTP | other *** search
- {
- JANOS SZAMOSFALVI
-
- the following routine uses a brute force approach with some
- optimization; it took less than 3 minutes with a 286/12 to find
- and print all primes up to 32768, about 50 seconds w/o printing
- them; it becomes a bit slow when you get into a 6 digit range
- }
-
- PROGRAM Primes;
- VAR
- number,
- max_div,
- divisor : INTEGER;
- prime : BOOLEAN;
- BEGIN
- writeln('Primes:');
- writeln('2');
- FOR number := 2 TO MAXINT DO
- BEGIN
- max_div := Round(sqrt(number) + 0.5);
- prime := number MOD 2 <> 0;
- divisor := 3;
- WHILE prime AND (divisor < max_div) DO
- BEGIN
- prime := number MOD divisor <> 0;
- divisor := divisor + 2;
- END;
- IF prime THEN
- writeln(number);
- END;
- END.